#include <iostream>

using namespace std;

//class A
//{
//public:
//	void Printf()
//	{
//		cout << "_a:" << _a << endl;
//	}
//protected:
//	int _a;
//};
//
//class B : public A
//{
//public:
//	void Printf()
//	{
//		cout << "_b:" << _b << endl;
//
//	}
//protected:
//	int _b;
//};
//
//int main()
//{
//	B b;
//	b.Printf();
//
//	return 0;
//}

//class A
//{
//public:
//	void f() { cout << "A::f()" << endl; }
//	int a;
//};
//
//class B : public A
//{
//public:
//	void f(int a) { cout << "B::f()" << endl; }
//	int a;
//};
//
//
//
//int main()
//{
//	B b;
//	b.f();
//
//	return 0;
//}

//class Base1{ public: int _b1; };
//class Base2 { public: int _b2; };
//class Derive : public Base1, public Base2
//{
//public: int _d;
//};
//
//int main() 
//{
//	Derive d;
//	Base1* p1 = &d;
//	Base2* p2 = &d;
//	Derive* p3 = &d;
//
//	return 0;
//}

// p1 == p3 != p2